﻿namespace TestTool.GUI.Controllers
{
    using System;
    using System.Runtime.CompilerServices;
    using TestTool.GUI.Data;
    using TestTool.GUI.Enums;

    public interface IController
    {
        event Action OperationCompleted;

        event Action OperationStarted;

        void Initialize();
        void LoadSavedContext(SavedContext context);
        void Stop();
        void SwitchToState(TestTool.GUI.Enums.ApplicationState state);
        void UpdateContext();
        void UpdateView();
        void UpdateViewFunctions();

        bool RequestPending { get; }
    }
}

